package com.jiangyg.devtools.execute.beantojson;

import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.LangDataKeys;
import com.intellij.psi.PsiFile;
import com.jiangyg.devtools.execute.AbstractToolExecutor;
import com.jiangyg.devtools.toolkit.AwtUtils;
import org.apache.commons.lang.StringUtils;

/**
 * 类描述：Bean 生成 JSON
 *
 * @author jiangyg
 * @version 1.0
 * @date 2023年08月14日
 */
public class BeanToJsonToolExecutor extends AbstractToolExecutor {

    public BeanToJsonToolExecutor(AnActionEvent event) {
        super(event);
    }

    @Override
    public void exec() {
        final PsiFile file = event.getData(LangDataKeys.PSI_FILE);
        // 1. 非 java 文件不处理
        if (file == null
                || file.getVirtualFile() == null
                || !StringUtils.endsWith(file.getVirtualFile().getName(), ".java")) {
            AwtUtils.errorTip("当前文件不是java类型！");
            return;
        }
        // 2. 遍历文件
        final PsiFileJsonCreator creator = new PsiFileJsonCreator(file);
        System.out.println("生成的JSON：" + creator.create());
        new BeanToJsonDialogWrapper(creator.create(), event.getProject()).show();
    }

}
